package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 并发安全的集合
 * Collection提供了将当前集合转换为并发安全集合的方法,
 * 在多线程并发操作集合时应当使用并发安全的集合.
 *
 * ArrayList,LinkedList,HashSet都不是并发安全的集合
 */
public class SyncCollectionDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("fgdj");
        list.add("gd");
        list.add("asdw");
        list.add("na");
        list.add("auidb");
        System.out.println(list);

        //将给定的List集合转换为一个线程安全的List集合
        list = Collections.synchronizedList(list);
        System.out.println(list);
        /*
            JDK8之后,java提供了一种新的遍历集合的方法.
            Collection中添加了forEach方法,可通过lanbda表达式形式遍历集合元素
            由于该方法是集合自身方法,因此可以和集合自身其他操作(比如增删元素)互斥,
            因此在多线程操作集合时我们首先要求集合要使用并发安全的集合,
            并且遍历操作采用forEach进行.
         */
        list.forEach(e-> System.out.println(e));
        list.forEach(System.out::println);










    }
}












